package GUI.almacen;

import items.Item;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;

public class DialogoBusquedaArticulosUnica extends  JDialog implements ActionListener {
	private static final long serialVersionUID = 1L;
	private String _nombre;
	private String _marca;
	private String _descripcion;
	private Articulos _articulos;
	private Boton _btnSalir;
	private JTable tabla;
	private JScrollPane barra;
	private JLabel _jlNombre;
	private JTextField _jtNombre;
	private JLabel _jlDescripcion;
	private JTextField _jtDescripcion;
	private JLabel _jlMarca;
	private JTextField _jtMarca;

	
	public DialogoBusquedaArticulosUnica(Articulos articulos,String cadena_nombre,
			String cadena_marca, String cadena_descripcion) {
		
		this._articulos=articulos;
		this._nombre= cadena_nombre;
		this._descripcion= cadena_descripcion;
		this._marca= cadena_marca;
		
		tabla= new JTable();
		this.getContentPane().setLayout(new BorderLayout());
	  
		JPanel panelPrincipal=new JPanel();
	    panelPrincipal.setLayout(new GridLayout(3,0));
	    panelPrincipal.setBorder(new TitledBorder("Resultados de busqueda "));
	    JPanel panelNombre= new JPanel();
		panelNombre.setLayout(new GridLayout(2,0));
		_jlNombre= new JLabel("Nombre");
		panelNombre.add(_jlNombre);
		_jtNombre=new JTextField(20);
		_jtNombre.setText(_nombre);
		_jtNombre.setEditable(false);
		panelNombre.add(_jtNombre);
		
		panelPrincipal.add(panelNombre);
		
		JPanel panelDescripcion= new JPanel();
		panelDescripcion.setLayout(new GridLayout(2,0));
		_jlDescripcion=new JLabel("Descripcion");
		panelDescripcion.add(_jlDescripcion);
		_jtDescripcion= new JTextField(20);
		_jtDescripcion.setText(_descripcion);
		_jtDescripcion.setEditable(false);
		panelDescripcion.add(_jtDescripcion);
		
		panelPrincipal.add(panelDescripcion);
		
		JPanel panelMarca= new JPanel();
		panelMarca.setLayout(new GridLayout(2,0));
		_jlMarca= new JLabel("Marca");
		panelMarca.add(_jlMarca);
		_jtMarca= new JTextField(20);
		_jtMarca.setText(_marca);
		_jtMarca.setEditable(false);
		panelMarca.add(_jtMarca);
		
		panelPrincipal.add(panelMarca);
		
		this.getContentPane().add(panelPrincipal,BorderLayout.NORTH);
        
 		
	// falta meter excepcion;
		mostrarDatosUsandoTableModel(_nombre,_descripcion,_marca);
		
		this.getContentPane().add(barra,BorderLayout.CENTER);
		configurar_dialogo();
	 	
	 	
	 	_btnSalir=new Boton("Salir");
	 	_btnSalir.setActionCommand("Salir");
	 	_btnSalir.addActionListener(this);
	 	this.getContentPane().add(_btnSalir,BorderLayout.SOUTH);
	 	
	 	
		configurar_dialogo();
	}
	
private void mostrarDatosUsandoTableModel(String entra_nombre,String entra_descripcion,String entra_marca) {
		
		DefaultTableModel modelo= new DefaultTableModel();
		String headers[]={"ID","Nombre","Descripcion","Precio","Marca","Fecha"};
		modelo.setColumnIdentifiers(headers);
		Object[] fila = new Object[modelo.getColumnCount()];
        Item item;
	
		for(int i=0;i<_articulos.dame_el_contenedor().dame_la_lista().size();i++){
			item=_articulos.dame_el_contenedor().dame_la_lista().get(i);
			  if(item.getDescripcion().equalsIgnoreCase(entra_descripcion)||
				 item.getNombre().equalsIgnoreCase(entra_nombre)||item.getMarca().equalsIgnoreCase(entra_marca)){
				 
					int id= item.getID();
					String identificador= Integer.toString(id);
					
					fila[0]=identificador;
					fila[1]=item.getNombre();
					fila[2]=item.getDescripcion();
					fila[3]=item.getPrecio();
					fila[4]=item.getMarca();
					fila[5]=item.getFechaCaducidad();		
				    modelo.addRow(fila);
			  }
			}
		
		tabla.setModel(modelo);
		barra= new JScrollPane(tabla);	
	
}	
	
	
	private void configurar_dialogo() {
 		this.setTitle("Busqueda datos Completo");
 		this.setResizable(false);
 		//this.pack();
 		this.setSize(500,400);
 		this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
 		this.setLocationRelativeTo(null);
 		this.setModal(true);	
	}

	@Override
	public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand().equalsIgnoreCase("salir"))
	        dispose();
		
	}

}
